package ar.edu.caece.pl.asem.model.impl;

import java.util.ArrayList;
import java.util.List;

import ar.edu.caece.pl.asem.model.ISymbol;

/**
 * Procedimientos o Funciones o Main 
 */
public abstract class AlphabeticSymbol implements ISymbol {

	private List<NumericSymbol> parameters = new ArrayList<NumericSymbol>();
	
	//TODO revisar si estos isXXX() son necesarios o si se pueden quitar y usar instanceof directamente
	
	@Override
	public boolean isVar() {
		return false;
	}

	@Override
	public boolean isConst() {
		return false;
	}

	@Override
	public abstract boolean isProcedure();

	@Override
	public abstract boolean isFunction();

	@Override
	public abstract boolean isMain();
	
	public void addParameter(NumericSymbol param) {
		this.parameters.add(param);
	}
	
	public List<NumericSymbol> getParameters() {
		return this.parameters;
	}

}
